home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 12, No. 08 (1991-08)(MindCraft Publishing)(Side A)[a2].zip / Nibble Volume 12, No. 08 (1991-08)(MindCraft Publishing)(Side A)[a2].po / TEASER.SC.txt < prev   
Text File  |  1996-12-24  |  25KB  |  599 lines

  1. *****************************************************************
  2. *                    TEASER GS Source Code                      *
  3. *  By Timothy // Shay                      ORCA/M GS Assembler  *
  4. * Copyright 1991 By MindCraft Publ. Corp. Lincoln, MA 01773     *
  5. *****************************************************************
  6.  
  7.          KEEP  TEASER
  8.  
  9. MAIN     START
  10.  
  11.          PHK                            ;Environment: Data Bank
  12.          PLB                            ;equals Code Bank
  13.  
  14. *****************************************************************
  15. *        Start up all the necessary tools                       *
  16. *****************************************************************
  17.  
  18. WAKEUP   LDX   #$0201                   ;Start Tool Locator
  19.          JSL   $E10000                  ;TLStartup
  20.          PEA   0                        ;Start Memory Manager
  21.          LDX   #$0202                   ;MMStartup
  22.          JSL   $E10000
  23.          JSR   ERRORS                   ;Check for errors
  24.          PLA                            ;Keep our UserID
  25.          STA   USERID
  26.          LDX   #$0203                   ;Start Misc Tools
  27.          JSL   $E10000                  ;MTStartup
  28.          JSR   ERRORS                   ;Check for errors
  29.          PEA   0                        ;Get direct pages
  30.          PEA   0                        ;for toolbox use
  31.          PEA   0                        ;Space for handle
  32.          PEA   $500                     ;5 pages
  33.          LDA   USERID                   ;Our ID
  34.          PHA
  35.          PEA   $C005                    ;Locked, fixed, aligned,
  36.          PEA   0                        ;fixed address in
  37.          PEA   0                        ;Bank 00
  38.          LDX   #$0902
  39.          JSL   $E10000                  ;NewHandle
  40.          JSR   ERRORS                   ;Check for errors
  41.          PLA                            ;De-reference our handle
  42.          STA   0
  43.          STA   HANDLE
  44.          PLA
  45.          STA   2
  46.          STA   HANDLE+2
  47.          LDA   [0]                      ;Get our direct page
  48.          STA   DPAGES                   ;address and keep it
  49.          LDA   DPAGES                   ;Start Quickdraw
  50.          PHA                            ;DP address
  51.          PEA   0                        ;320 mode
  52.          PEA   0                        ;Default pixel map size
  53.          LDA   USERID                   ;Our ID
  54.          PHA
  55.          LDX   #$0204
  56.          JSL   $E10000                  ;QDStartup
  57.          JSR   ERRORS                   ;Check for errors
  58.          LDA   DPAGES                   ;Start Event Manager
  59.          CLC
  60.          ADC   #$300
  61.          PHA                            ;DP address
  62.          PEA   20                       ;Event queue size
  63.          PEA   0                        ;Minimum X for mouse
  64.          PEA   320                      ;Maximum X for mouse
  65.          PEA   0                        ;Minimum Y for mouse
  66.          PEA   200                      ;Maximum Y for mouse
  67.          LDA   USERID
  68.          PHA                            ;Our ID
  69.          LDX   #$0206
  70.          JSL   $E10000                  ;EMStartup
  71.          JSR   ERRORS                   ;Check for errors
  72. TOOLOAD  PEA   $1B                      ;Load Font Manager
  73.          PEA   0                        ;Any version
  74.          LDX   #$0F01
  75.          JSL   $E10000                  ;LoadOneTool
  76.          JSR   ERRORS                   ;Check for errors
  77.          CMP   #$DE01                   ;Recoverable disk error?
  78.          BEQ   TOOLOAD                  ;Yes, try loading again
  79.          CMP   #$DE00                   ;Non-recoverable error?
  80.          BNE   FMSTART                  ;No, continue
  81.          JMP   FIN1                     ;Yes, we're through
  82. FMSTART  LDA   USERID                   ;Start Font Manager
  83.          PHA                            ;Our ID
  84.          LDA   DPAGES
  85.          CLC
  86.          ADC   #$400
  87.          PHA                            ;DP address
  88.          LDX   #$021B
  89.          JSL   $E10000                  ;FMStartup
  90.          JSR   ERRORS                   ;Check for errors
  91.  
  92. *****************************************************************
  93. *        Get Ready - Initialize game screen and variables       *
  94. *****************************************************************
  95.  
  96. BEGIN    PEA   $EEEE                    ;Clear screen to
  97.          LDX   #$1504                   ;light grey
  98.          JSL   $E10000                  ;ClearScreen
  99.          LDA   #HIMSG                   ;Send 'Hello' message
  100.          JSR   MSG
  101.          JSR   GETMK                    ;Get any event
  102.          PEA   0                        ;Change color table 0
  103.          PEA   COLORS|-16               ;to our color table
  104.          PEA   COLORS
  105.          LDX   #$0E04
  106.          JSL   $E10000                  ;SetColorTable
  107. BEGIN1   PEA   0                        ;Clear screen to black
  108.          LDX   #$1504
  109.          JSL   $E10000                  ;ClearScreen
  110.          LDX   #$CA04                   ;Show the mouse
  111.          JSL   $E10000                  ;InitCursor
  112.          PEA   14                       ;Pen = light grey
  113.          LDX   #$3704
  114.          JSL   $E10000                  ;SetSolidPenPat
  115.          PEA   TOPREC|-16               ;Draw title box
  116.          PEA   TOPREC
  117.          LDX   #$5404
  118.          JSL   $E10000                  ;PaintRect
  119.          PEA   MIDREC|-16               ;Draw game box
  120.          PEA   MIDREC
  121.          LDX   #$5404
  122.          JSL   $E10000                  ;PaintRect
  123.          PEA   BTMREC|-16               ;Draw Q-R box
  124.          PEA   BTMREC
  125.          LDX   #$5404
  126.          JSL   $E10000                  ;PaintRect
  127.          PEA   0                        ;Pen = black
  128.          LDX   #$3704
  129.          JSL   $E10000                  ;SetSolidPenPat
  130.          PEA   QREC|-16                 ;Draw Quit box
  131.          PEA   QREC
  132.          LDX   #$5304
  133.          JSL   $E10000                  ;FrameRect
  134.          PEA   RREC|-16                 ;Draw Restart box
  135.          PEA   RREC
  136.          LDX   #$5304
  137.          JSL   $E10000                  ;FrameRect
  138.          LDA   #GAMMSG                  ;Send game message
  139.          JSR   MSG
  140.          LDA   #$1FF                    ;Old field = all stars
  141.          STA   OLDPIC
  142. BEGIN2   STZ   MOVES                    ;Restart Reenters here
  143.          LDA   #0                       ;New field = all holes
  144.          JSR   FIXPIC                   ;Draw game field
  145.          LDA   #16                      ;New field = start
  146.          JSR   FIXPIC                   ;Draw game field
  147.  
  148. *****************************************************************
  149. *        Start Playing! - This is the main 'thinking' loop      *
  150. *****************************************************************
  151.  
  152. THINK    JSR   GETMK                    ;Get an event
  153.          BCS   THINK                    ;Not valid, get another
  154.          CMP   #18                      ;Quit?
  155.          BNE   THINK1
  156.          JMP   FIN
  157. THINK1   CMP   #20                      ;Restart?
  158.          BEQ   BEGIN2
  159.          LDY   BXPTR                    ;Get the field bit for
  160.          LDA   STRPTS,Y                 ;our chosen system
  161.          AND   OLDPIC                   ;Check for a hit
  162.          BNE   THINK2
  163.          JSR   BLOOP                    ;Miss, bloop and get
  164.          BRA   THINK                    ;another event
  165. THINK2   JSR   BLEEP                    ;Hit, bleep
  166.          INC   MOVES                    ;Add to move count
  167.          LDY   BXPTR                    ;Make the changes to the
  168.          LDA   OLDPIC                   ;game field
  169.          EOR   HITMODS,Y
  170.          JSR   FIXPIC                   ;Draw game field
  171.          LDA   OLDPIC                   ;Check for a winning or
  172.          BEQ   WL                       ;losing field
  173.          CMP   #$1EF
  174.          BNE   THINK
  175.  
  176. *****************************************************************
  177. *        Win/Lose Routines                                      *
  178. *****************************************************************
  179.  
  180. WL       JSR   BLEEP                    ;Win or lose - bleep and
  181.          PEA   9                        ;flash the game board
  182. WL1      LDY   #$FFFF                   ;several times with a
  183. WL2      DEY                            ;short pause between
  184.          BNE   WL2                      ;flashes
  185.          PLY
  186.          DEY
  187.          BEQ   WL3
  188.          PHY
  189.          PEA   MIDREC|-16               ;Invert game box
  190.          PEA   MIDREC
  191.          LDX   #$5604
  192.          JSL   $E10000                  ;InvertRect
  193.          BRA   WL1
  194. WL3      JSR   BLEEP                    ;Bleep again and
  195.          PEA   14                       ;Pen = light grey
  196.          LDX   #$3704
  197.          JSL   $E10000                  ;SetSolidPenPat
  198.          PEA   MIDREC|-16               ;Fill the game box
  199.          PEA   MIDREC                   ;with light grey
  200.          LDX   #$5404
  201.          JSL   $E10000                  ;PaintRect
  202.          LDA   OLDPIC
  203.          BEQ   LOSE
  204. WIN      LDA   #WINMSG                  ;Send the winning or
  205.          BRA   WL4
  206. LOSE     LDA   #LOSEMSG                 ;losing message
  207. WL4      JSR   MSG
  208. WL5      JSR   GETMK                    ;Get an event
  209.          CMP   #20                      ;Restart?
  210.          BNE   WL6
  211.          JMP   BEGIN1
  212. WL6      CMP   #18                      ;Quit?
  213.          BNE   WL5
  214.          JMP   FIN
  215.  
  216. *****************************************************************
  217. *        Get mouse/keyboard events and evaluate them            *
  218. *****************************************************************
  219.  
  220. GETMK    PHA                            ;Get an event
  221.          PEA   $FFFF                    ;All events
  222.          PEA   EVREC|-16                ;Location of event record
  223.          PEA   EVREC
  224.          LDX   #$0A06
  225.          JSL   $E10000                  ;GetNextEvent
  226.          PLA
  227.          BEQ   GETMK
  228.          LDA   EVWHAT                   ;Check for keyboard
  229.          CMP   #3                       ;event
  230.          BNE   GETMK2
  231.          LDA   EVMSG                    ;Keyboard event, check
  232.          AND   #$7F                     ;for a match in MKData
  233.          LDY   #26                      ;and set the BxPtr
  234. GETMK1   DEY                            ;accordingly
  235.          DEY
  236.          BMI   GETMK4
  237.          CMP   MKDATA,Y
  238.          BNE   GETMK1
  239.          LDA   MKDATA1,Y
  240.          STA   BXPTR
  241.          CLC                            ;Valid event, carry is
  242.          RTS                            ;clear on return
  243. GETMK2   CMP   #1                       ;Check for mouse event
  244.          BNE   GETMK
  245.          PEA   22                       ;Mouse event, check if
  246. GETMK3   PLY                            ;it was inside a game
  247.          DEY                            ;system or box and set
  248.          DEY                            ;BxPtr accordingly
  249.          BMI   GETMK4
  250.          PHY
  251.          PEA   0
  252.          PEA   EVWHERE|-16
  253.          PEA   EVWHERE
  254.          PEA   RECPTR|-16
  255.          LDA   RECPTR,Y
  256.          PHA
  257.          LDX   #$4F04
  258.          JSL   $E10000                  ;PtInRect
  259.          PLA
  260.          BEQ   GETMK3
  261.          PLA
  262.          STA   BXPTR
  263.          CLC                            ;Valid event, carry is
  264.          RTS                            ;clear on return
  265. GETMK4   SEC                            ;Invalid event, carry
  266.          RTS                            ;is set on return
  267.  
  268. *****************************************************************
  269. *        FixPic - Redraws the screen if any changes were made   *
  270. *****************************************************************
  271.  
  272. FIXPIC   STA   NEWPIC                   ;Save our new field
  273.          EOR   OLDPIC                   ;Note any changes from
  274.          STA   TRSHVAR                  ;old field in TrshVar
  275.          PEA   18                       ;Starting at system 9
  276. FIXPIC1  PLY                            ;and working down
  277.          DEY
  278.          DEY
  279.          BPL   FIXPIC2                  ;Done?
  280.          PEA   14                       ;Yes, pen = light grey
  281.          LDX   #$3704
  282.          JSL   $E10000                  ;SetSolidPenPat
  283.          PEA   MVREC|-16                ;Fill move count area
  284.          PEA   MVREC                    ;with light grey
  285.          LDX   #$5404
  286.          JSL   $E10000                  ;PaintRect
  287.          LDA   MOVES                    ;Change the move count
  288.          PHA                            ;from an integer into
  289.          PEA   MOVES2|-16               ;an ASCII string
  290.          PEA   MOVES2
  291.          PEA   6
  292.          PEA   0
  293.          LDX   #$260B
  294.          JSL   $E10000                  ;Int2Dec
  295.          PEA   147                      ;Move pen to move count
  296.          PEA   183                      ;location
  297.          LDX   #$3A04
  298.          JSL   $E10000                  ;MoveTo
  299.          PEA   MOVES2|-16               ;Draw the last three
  300.          PEA   MOVES2+3                 ;digits of the move count
  301.          PEA   3
  302.          LDX   #$A704
  303.          JSL   $E10000                  ;DrawText
  304.          LDA   NEWPIC
  305.          STA   OLDPIC
  306.          RTS
  307. FIXPIC2  PHY
  308.          LDA   TRSHVAR                  ;Was there a change to
  309.          AND   STRPTS,Y                 ;the current system?
  310.          BEQ   FIXPIC1                  ;No, next system
  311.          AND   NEWPIC                   ;Changed to star or hole?
  312.          BEQ   FIXPIC3
  313.          PEA   7                        ;Star, pen = red
  314.          LDX   #$3704
  315.          JSL   $E10000                  ;SetSolidPenPat
  316.          PLY                            ;Draw the star
  317.          PHY
  318.          PEA   CPTRS|-16
  319.          LDA   CPTRS,Y
  320.          PHA
  321.          LDX   #$5904
  322.          JSL   $E10000                  ;PaintOval
  323.          JMP   FIXPIC1
  324. FIXPIC3  PEA   1                        ;Hole, pen = dark grey
  325.          LDX   #$3704
  326.          JSL   $E10000                  ;SetSolidPenPat
  327.          PLY                            ;Draw hole's interior
  328.          PHY
  329.          PEA   RECPTR|-16
  330.          LDA   RECPTR,Y
  331.          PHA
  332.          LDX   #$5404
  333.          JSL   $E10000                  ;PaintRect
  334.          PEA   0                        ;Pen = black
  335.          LDX   #$3704
  336.          JSL   $E10000                  ;SetSolidPenPat
  337.          PLY                            ;Draw hole's outline
  338.          PHY
  339.          PEA   RECPTR|-16
  340.          LDA   RECPTR,Y
  341.          PHA
  342.          LDX   #$5304
  343.          JSL   $E10000                  ;FrameRect
  344.          PLY                            ;Draw space behind hole
  345.          PHY
  346.          PEA   PTRS2|-16
  347.          LDA   PTRS2,Y
  348.          PHA
  349.          LDX   #$5404
  350.          JSL   $E10000                  ;PaintRect
  351.          JMP   FIXPIC1
  352.  
  353. *****************************************************************
  354. *        Bleep and Bloop - The sound routines                   *
  355. *****************************************************************
  356.  
  357. BLEEP    LDY   #$40                     ;Bleep!
  358. BLEEP1   TYA                            ;Bleep and Bloop are
  359.          TAX                            ;modified //e 'speaker
  360. BLEEP2   DEX                            ;peeker' routines for
  361.          BNE   BLEEP2                   ;sound with various
  362.          LDA   $E0C030                  ;time delays between
  363.          LDX   #$180                    ;speaker clicks
  364. BLEEP3   DEX
  365.          BNE   BLEEP3
  366.          STA   $E0C030
  367.          DEY
  368.          BNE   BLEEP1
  369.          RTS
  370. BLOOP    LDY   #$30                     ;Bloop!
  371. BLOOP1   LDX   #$110
  372. BLOOP2   DEX
  373.          BNE   BLOOP2
  374.          LDA   $E0C030
  375.          LDX   #$110
  376. BLOOP3   DEX
  377.          BNE   BLOOP3
  378.          STA   $E0C030
  379.          DEY
  380.          BNE   BLOOP1
  381.          RTS
  382.  
  383. *****************************************************************
  384. *        Speedy Message Delivery Service                        *
  385. *****************************************************************
  386.  
  387. MSG      STA   MSG2+1                   ;Store message address
  388.          PEA   4                        ;Text mode = foreCOPY
  389.          LDX   #$9C04
  390.          JSL   $E10000                  ;SetTextMode
  391.          PEA   4                        ;Move cursor to top left
  392.          LDA   #9                       ;X = 4 and Y = 9
  393.          STA   TRSHVAR
  394.          PHA
  395.          LDX   #$3A04
  396.          JSL   $E10000                  ;MoveTo
  397.          PEA   $FFFF
  398. MSG1     PLY                            ;Get message pointer
  399.          INY                            ;Go to next character
  400.          PHY
  401. MSG2     DC    H'B90000'                ;Equates to LDA XXXX,Y
  402.          AND   #$7F                     ;Keep bits 0 through 6
  403.          CMP   #$1F                     ;Control character?
  404.          BCC   MSG3                     ;Yes, handle it.
  405.          PHA                            ;No, draw the character
  406.          LDX   #$A404
  407.          JSL   $E10000                  ;DrawChar
  408.          BRA   MSG1
  409. MSG3     CMP   #$10                     ;Color change?
  410.          BCS   MSG4
  411.          PHA                            ;Yes, pen = current
  412.          LDX   #$A004                   ;character's value
  413.          JSL   $E10000                  ;SetForeColor
  414.          BRA   MSG1
  415. MSG4     CMP   #$11                     ;New line?
  416.          BNE   MSG5
  417.          LDA   TRSHVAR                  ;Yes, Y = Y plus 10
  418.          CLC
  419.          ADC   #10
  420.          STA   TRSHVAR
  421.          PEA   4                        ;X = 4
  422.          PHA
  423.          LDX   #$3A04
  424.          JSL   $E10000                  ;MoveTo
  425.          BRA   MSG1
  426. MSG5     CMP   #$13                     ;Line adjust?
  427.          BNE   MSG6
  428.          PEA   0                        ;Yes, Y = Y plus 1
  429.          PEA   1
  430.          LDX   #$3B04
  431.          JSL   $E10000                  ;Move
  432.          INC   TRSHVAR
  433.          BRA   MSG1
  434. MSG6     CMP   #$14                     ;Venice font?
  435.          BNE   MSG7
  436.          LDA   VENICEF+2                ;Yes, install
  437.          PHA                            ;the new font
  438.          LDA   VENICEF
  439.          PHA
  440.          PEA   1                        ;No scaling
  441.          LDX   #$0E1B
  442.          JSL   $E10000                  ;InstallFont
  443.          JSR   ERRORS                   ;Check for errors
  444.          CMP   #$DE01                   ;If we can't find venice
  445.          BEQ   MSG6                     ;font on system disk,
  446.          JMP   MSG1                     ;ignore the font change
  447. MSG7     CMP   #$15                     ;System font?
  448.          BNE   MSG8
  449.          LDX   #$131B                   ;Yes, restore the font
  450.          JSL   $E10000                  ;LoadSysFont
  451.          JMP   MSG1
  452. MSG8     PLA                            ;Non-recognized control
  453.          RTS                            ;characters = end msg
  454.  
  455. *****************************************************************
  456. *        Errors handled here free of charge                     *
  457. *****************************************************************
  458.  
  459. ERRORS   BCS   ERRORS1                  ;Did an error occur?
  460.          RTS                            ;No, we're done
  461. ERRORS1  CMP   #$45                     ;Was it the wrong disk?
  462.          BNE   CRASH
  463. BEGDISK  JSL   $E100A8                  ;GetBootVol
  464.          DC    I2'$28',I4'BVPARM'       ;Get the boot disk for
  465.          PHA                            ;tool set and font
  466.          PEA   20                       ;loading
  467.          PEA   50
  468.          PEA   PROMPT|-16
  469.          PEA   PROMPT
  470.          PEA   VOLNAME|-16
  471.          PEA   VOLNAME
  472.          PEA   OK_MSG|-16
  473.          PEA   OK_MSG
  474.          PEA   CNCLMS|-16
  475.          PEA   CNCLMS
  476.          LDX   #$1101
  477.          JSL   $E10000                  ;TLMountVolume
  478.          PLA
  479.          CMP   #1                       ;Is the right disk in?
  480.          BNE   NODISK
  481.          LDA   #$DE01                   ;Yes, load 'Disk OK'
  482.          RTS                            ;message and return
  483. NODISK   LDA   #$DE00                   ;No, load 'Wrong Disk'
  484.          RTS                            ;message and return
  485. CRASH    PHA                            ;Major Malfunction,
  486.          PEA   CRSHDAT|-16              ;display error message
  487.          PEA   CRSHDAT                  ;and crash
  488.          LDX   #$1503
  489.          JSL   $E10000                  ;SysFailMgr
  490.  
  491. *****************************************************************
  492. *        FIN - Shut down, quit, go home                         *
  493. *****************************************************************
  494.  
  495. FIN      LDX   #$031B                   ;Shut down the tools
  496.          JSL   $E10000                  ;FMShutDown
  497. FIN1     LDX   #$0306
  498.          JSL   $E10000                  ;EMShutDown
  499.          LDX   #$0304
  500.          JSL   $E10000                  ;QDShutDown
  501.          LDX   #$0303
  502.          JSL   $E10000                  ;MTShutDown
  503.          LDA   HANDLE+2                 ;Give back our
  504.          PHA                            ;DP memory space
  505.          LDA   HANDLE
  506.          PHA
  507.          LDX   #$1002
  508.          JSL   $E10000                  ;DisposeHandle
  509.          LDA   USERID
  510.          PHA
  511.          LDX   #$0302
  512.          JSL   $E10000                  ;MMShutDown
  513.          LDX   #$0301
  514.          JSL   $E10000                  ;TLShutDown
  515.          JSL   $E100A8                  ;GSOS Quit
  516.          DC    I2'$29',I4'FINDATA'
  517.  
  518. *****************************************************************
  519. *        Data Space - Where no man has gone before              *
  520. *****************************************************************
  521.  
  522. USERID   DS    2
  523. HANDLE   DS    4
  524. DPAGES   DS    2
  525. BVPARM   DC    I4'VOLNAME'
  526. PROMPT   DC    H'0D',C'Please Insert'
  527. VOLNAME  DS    18
  528. OK_MSG   DC    I1'4',C'Okay'
  529. CNCLMS   DC    I1'5',C'Abort'
  530. CRSHDAT  DC    I1'55,13,10,10',11I1'32',C'Major Malfunction!'
  531.          DC    I1'13,10',14I1'32',C'Error: '
  532. FINDATA  DC    6H'00'
  533. COLORS   DC    H'0000440441082C070F008000700F000D'
  534.          DC    H'A90FF00FE000DF04AF0D8F07AA0AFF0F'
  535. VENICEF  DC    I4'$0E000005'
  536. BXPTR    DS    2
  537. TRSHVAR  DS    2
  538. EVREC    ANOP
  539. EVWHAT   DS    2
  540. EVMSG    DS    8
  541. EVWHERE  DS    6
  542. MKDATA   DC    I'49,50,51,52,53,54,55,56,57,81,82,113,114'
  543. MKDATA1  DC    I'0,2,4,6,8,10,12,14,16,18,20,18,20'
  544. OLDPIC   DS    2
  545. NEWPIC   DS    2
  546. MOVES    DS    2
  547. MOVES2   DS    6
  548. STRPTS   DC    I'1,2,4,8,16,32,64,128,256'
  549. HITMODS  DC    H'1B00070036004900BA002401D800C001B001'
  550. RECPTR   DC    I'ORECS,ORECS+8,ORECS+16,ORECS+24,ORECS+32'
  551.          DC    I'ORECS+40,ORECS+48,ORECS+56,ORECS+64,QREC,RREC'
  552. PTRS2    DC    I'IRECS,IRECS+8,IRECS+16,IRECS+24,IRECS+32'
  553.          DC    I'IRECS+40,IRECS+48,IRECS+56,IRECS+64'
  554. CPTRS    DC    I'STRS,STRS+8,STRS+16,STRS+24,STRS+32'
  555.          DC    I'STRS+40,STRS+48,STRS+56,STRS+64'
  556. TOPREC   DC    I'10,87,29,232'
  557. MIDREC   DC    I'40,87,160,232'
  558. BTMREC   DC    I'170,87,189,232'
  559. ORECS    DC    I'122,92,156,133,122,139,156,180,122,186,156,227'
  560.          DC    I'83,92,117,133,83,139,117,180,83,186,117,227'
  561.          DC    I'44,92,78,133,44,139,78,180,44,186,78,227'
  562. QREC     DC    I'172,89,187,146'
  563. RREC     DC    I'172,173,187,230'
  564. MVREC    DC    I'172,147,187,172'
  565. IRECS    DC    I'122,105,146,133,122,143,146,176,122,186,146,214'
  566.          DC    I'86,105,114,133,86,143,114,176,86,186,114,214'
  567.          DC    I'54,105,78,133,54,143,78,176,54,186,78,214'
  568. STRS     DC    I'124,102,148,131,124,145,148,174,124,188,148,217'
  569.          DC    I'88,102,112,131,88,145,112,174,88,188,112,217'
  570.          DC    I'52,102,76,131,52,145,76,174,52,188,76,217'
  571. GAMMSG   DC    H'1114',4H'13',24H'20',C'Teaser GS',16H'11',H'15'
  572.          DC    24H'20',C'Quit',11H'20',C'Restart',H'16'
  573. WINMSG   DC    7H'11',H'0414',19H'20',C'Congratulations!',2H'11'
  574.          DC    21H'20',C'You''ve solved',2H'11',23H'20'
  575.          DC    C'the puzzle!',H'001516'
  576. LOSEMSG  DC    8H'11',H'0414',27H'20',C'Sorry,',2H'11'
  577.          DC    25H'20',C'You lost.',H'001516'
  578. HIMSG    DC    H'1114',23H'20',C'Teaser GS',H'151111',23H'20'
  579.          DC    H'01',C'By Timothy // Shay',H'111102'
  580.          DC    19H'20',C'Copyright 1991 By',H'11'
  581.          DC    19H'20',C'MindCraft Publ. Corp.'
  582.          DC    H'111104',9H'20',C'- Start -',10H'20',C'- Win -'
  583.          DC    10H'20',C'- Lose -',H'1101',14H'20',C'789',17H'20'
  584.          DC    H'0737383901',17H'20',H'37383911',14H'20',H'3407'
  585.          DC    H'35013607',17H'20',H'340135073601',17H'20',C'456'
  586.          DC    H'11',14H'20',C'123',17H'20',H'0731323301',17H'20'
  587.          DC    C'123',H'111104',16H'20',C'- Moves -',16H'20'
  588.          DC    C'- Moves -',H'1101',3H'373839202020',H'03370138'
  589.          DC    H'3920202037033801392020203738033920202007370338'
  590.          DC    H'0139202020033707380339202020013703380739110334'
  591.          DC    H'3501362020203435362020203403353620202007340135'
  592.          DC    H'3620202003340735033620202001343507362020200334'
  593.          DC    H'3501362020203435362020203403353611073103320133'
  594.          DC    H'2020200331073203332020200131033207332020200331'
  595.          DC    H'01323320202031033201332020203132033301'
  596.          DC    3H'202020313233',H'11110F202020',C'<click mouse'
  597.          DC    C' or press a key to continue>',H'001516'
  598.          END
  599.